﻿using System;
using System.Collections.Generic;

namespace FinMkts
{
    /// <summary>
    /// A provider of prices for one or more market places
    /// </summary>
    public abstract class MarketDataProvider
    {
        public virtual Guid Id { get; set; }

        public virtual string Name { get; set; }

        public virtual string Code { get; set; }

        /// <summary>
        /// Get price of an instrument
        /// </summary>
        public abstract IObservable<MarketPrice> GetPrice(string code);

        ///// <summary>
        ///// Default fees for viewing market data
        ///// </summary>
        //public IEnumerable<IMarketDataFee> Fees { get; set; }

        public virtual ICollection<MarketDataListing> MarketDataListings { get; set; }

    }

    public interface IMarketDataFee
    {
    }
}